package com.wjw.redis.stream.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.util.ErrorHandler;

/**
 * @author ：wjw
 * &#064;date  ：Created in 2022/5/19 10:24
 * &#064;description：异常处理
 */
@Slf4j
public class StreamErrorHandler implements ErrorHandler {

    @Override
    public void handleError(Throwable t) {
        try {
            String errorMessage = "stream异常：";
            log.error(errorMessage + t.getMessage(), t);
            // 这里还可以添加一些异常处理的逻辑，比如资源的释放、发送错误通知等
            // handleSpecificException(t);

        } catch (Exception e) {
            // 对于处理过程中可能抛出的异常进行捕获和处理
            // 这里简单处理，但在实际应用中可能需要更细致的处理
            log.error("处理异常时发生错误：", e);
        }
    }

    // 示例：根据异常类型进行特殊处理的逻辑
//    private void handleSpecificException(Throwable t) {
//        // 根据异常类型采取不同的处理策略
//        if (t instanceof SomeSpecificException) {
//            // 特定异常的处理逻辑
//        }
//        // 其他异常类型的处理逻辑
//    }
}
